﻿#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QDebug>
#include <QList>
#include <QWidgetItem>
#include <QFile>
#include <QTableWidget>
#include <QTableWidgetItem>
#include <QPushButton>
#include "btnform.h"
#include "addstuffwindow.h"
#include <QMessageBox>
#include <QCloseEvent>
#include <QJsonArray>
#include <QJsonDocument>
#include <QJsonObject>
namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

public slots:
    void getUserInfo(const QString& userName, const int& userIndex);

    void closeEvent(QCloseEvent *event);//关闭窗口事件，退出时改变用户登录状态

    //员工管理界面
    void getModify(const int& rowindex);

    void getDelete(const int& rowindex);

    void getSure(const int& rowindex);

    void getCancel(const int& rowindex);

    //货物管理界面
    void getGoodModify(const int& rowindex);

    void getGoodDelete(const int& rowindex);

    void getGoodSure(const int& rowindex);

    void getGoodCancel(const int& rowindex);

signals:
    //员工管理界面信号
    void sendRowModify(const int& index, const int& row);
    void sendRowDelete(const int& index, const int& row);
    void sendRowSure(const int& index, const int& row);
    void sendRowCancel(const int& index, const int& row);
    //货物管理界面信号
    void sendGoodRowModify(const int& index, const int& row);
    void sendGoddRowDelete(const int& index, const int& row);
    void sendGoodRowSure(const int& index, const int& row);
    void sendGoodRowCancel(const int& index, const int& row);

private slots:
    //员工管理界面
    void on_stuffManageBtn_clicked();

    void on_addBtn_clicked();

//    void on_searchBtn_clicked();

    void on_cancelBtn_clicked();

    void on_reflushBtn_clicked();

    //货物管理界面
    void on_goodManageBtn_clicked();



    void on_reflushGoodBtn_clicked();

    void on_addGoodBtn_clicked();

    void on_orderMangeBtn_clicked();





private:
    Ui::MainWindow *ui;
    QString u_Name; //存储已登录用户的用户名
    int u_Index;    //存储已登录用户的身份索引， 0为员工， 1位管理员
    //员工管理界面参数
    QStringList userStringList; //用于存放单个用户信息，用户信息：账号 密码 身份 登录状态
    QList<QStringList> userList;    //用于存放所有用户信息
    int rowModifyIndex; //需要修改的行号
    int rowDeleteIndex; //需要删除的行号
    int rowSureIndex;   //确定添加的行号
    int rowCancelIndex; //取消添加的行号
    //货物管理界面参数
    QStringList goodStringList; //用于存放单个货物信息， 商品信息： 商品名  当前售价 小类名称 库存
    QList<QStringList> goodList;    //用于存放所有商品信息
    int rowGoodModifyIndex; //需要修改的行号
    int rowGoodDeleteIndex; //需要删除的行号
    int rowGoodSureIndex;   //确定添加的行号
    int rowGoodCancelIndex; //取消添加的行号

};

#endif // MAINWINDOW_H
